It has long been known that the ability to move objects dynamically from computer to computer is useful. For example, moving objects allows the system to load balance among computers. In addition, it allows the system to dynamically cluster objects that communicate frequently, reducing network traffic and improving overall system performance.
However, current systems that allow objects to be relocated (migrated) suffer significant drawbacks, typically requiring either a special purpose programming language (or special purpose modifications to a general purpose language) or a special purpose operating system. In the former case, the programmer must develop new skills and adorn their code with additional syntax to exploit object migration. In the latter case, the resulting programs are limited to execution on sparsely deployed systems.
The present invention, relating to Dynamic Object Distribution (DOD), describes a system that suffers neither of these limitations. In the preferred embodiment, the programmer simply writes his program in the Java programming language (Java is a trademark of Sun Microsystems Inc.) without adding any special syntax or notations. The program then executes on standard Java Virtual Machines (JVMs) which are widely deployed in the industry.
Object migration has been studied extensively in academia as well as in industry. Systems such as the v-kernel enable page-based migration on systems running the v-kernel, however, systems without the v-kernel cannot perform migration. Because the v-kernel requires operating system modification, it is not widely used. Systems such as Amber from the University of Washington migrate objects among nodes of a multi-processor computer. However, Amber requires the program to be written in a special language. The Amber runtime is also not widely used. A major benefit of the present invention is that it requires no kernel modifications and works in Java which is a widely-deployed language.